import { IPSModelObject } from '../../ipsmodel-object';
import { IPSAppDEMethod } from '../../app/dataentity/ipsapp-demethod';
import { IPSDEFIUpdateDetail } from './ipsdefiupdate-detail';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSDEFormItemUpdate
 */
export interface IPSDEFormItemUpdate extends IPSModelObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 处理应用实体方法
   *
   * @type {IPSAppDEMethod}
   */
  getPSAppDEMethod(): IPSAppDEMethod | null;

  /**
   * 处理应用实体方法
   *
   * @type {IPSAppDEMethod}
   */
  get psAppDEMethod(): IPSAppDEMethod | null;

  /**
   * 处理应用实体方法（必须存在）
   *
   * @type {IPSAppDEMethod}
   */
  getPSAppDEMethodMust(): IPSAppDEMethod;

  /**
   * 表单项更新成员集合
   *
   * @type {IPSDEFIUpdateDetail[]}
   */
  getPSDEFIUpdateDetails(): IPSDEFIUpdateDetail[] | null;

  /**
   * 表单项更新成员集合
   *
   * @type {IPSDEFIUpdateDetail[]}
   */
  get psDEFIUpdateDetails(): IPSDEFIUpdateDetail[] | null;

  findPSDEFIUpdateDetail(objKey: any): IPSDEFIUpdateDetail | null;

  /**
   * 脚本代码
   * @type {string}
   */
  scriptCode: string;

  /**
   * 自定义脚本代码
   * @type {boolean}
   * @default false
   */
  customCode: boolean;

  /**
   * 显示处理提示
   * @type {boolean}
   * @default true
   */
  showBusyIndicator: boolean;
}
